home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer 2.0 / Internet Surfer 2.0 (Wayzata Technology) (1996).iso / pc / text / mac / faqs.449 < prev    next >
Text File  |  1996-02-12  |  28KB  |  755 lines

  1. Frequently Asked Questions (FAQS);faqs.449
  2.  
  3.  
  4.  
  5.     Please help fix the FAQ! All comments should be mailed to
  6.     jgm@cs.brown.edu. My favorite way to receive a change suggestion is
  7.     when it is accompanied by a section of the FAQ that is edited and
  8.     mailed to me verbatim as an example. If you would like to
  9.     contribute, please read the section ``about the FAQ'' first. Thank
  10.     you!
  11.  
  12.     Books and programs are referred to by name only. See the
  13.     appropriate sections for full information.
  14.  
  15.  
  16. Subject: 7 Programming in PostScript
  17.  
  18.  
  19. Subject: 7.1 What is PostScript level 2?
  20.  
  21.     PostScript Level Two is a major upgrade to PostScript Level One.
  22.  
  23.     Starting from PostScript Level One as a basis, PostScript Level Two
  24.     represents the confluence of many features:
  25.  
  26.  
  27.  
  28.     * Composite fonts -- fonts with the capability of supporting
  29.       character sets with more than 256 characters. Such fonts are
  30.       needed in the Asian marketplace, for example.
  31.  
  32.  
  33.     * Patterns -- provide a device-independent way to describe patterns
  34.       which tile an area. A pattern can be thought of as another kind
  35.       of ``color'' in PostScript Level Two.
  36.  
  37.  
  38.     * Forms -- to meet the demands of the forms market, forms describe
  39.       static information which can be repeated many times on one page
  40.       or printed on many separate pages, or both.
  41.  
  42.  
  43.     * Color -- the previous ill-defined color models are now enhanced
  44.       with the addition of CMYK color, support for color images, CIE
  45.       device-independent color (if anybody can understand the damned
  46.       thing).
  47.  
  48.  
  49.     * Halftones -- new highly accurate halftone screening methods to
  50.       meet the needs of high end typesetting equipment.
  51.  
  52.  
  53.     * Display PostScript -- many enhancements and efficiency
  54.       improvements to support the needs of screen rendering.
  55.       Enhancements include:
  56.  
  57.  
  58.  
  59.        * efficient rectangle operators,
  60.  
  61.  
  62.        * efficient font and text operators,
  63.  
  64.  
  65.        * multiple contexts
  66.  
  67.  
  68.        * shared memory models
  69.  
  70.  
  71.        * hit detection
  72.  
  73.     A detailed description of PostScript 2 is available in the section
  74.     on PostScript 2.
  75.  
  76.  
  77. Subject: 7.2 Should I learn level 2 PostScript?
  78.  
  79.     Yes, because Level Two will soon become the standard. Application
  80.     developers using PostScript need to become aware of the new
  81.     capabilities and how to take advantage of them.
  82.  
  83.     There are many good books on PostScript 2. (See Section 5,
  84.     ``Books''.)
  85.  
  86.  
  87. Subject: 7.3 Where can I find examples of PostScript code?
  88.  
  89.     Many other books on PostScript make example PostScript code
  90.     available. ``Thinking in PostScript'', by Glenn Reid, is the only
  91.     book I know of that allows its examples to be freely distributed.
  92.     (See Section 5, ``Books''.)
  93.  
  94.     All the examples in ``the blue book'' are available from the Adobe
  95.     file server (See Section 5, ``Books''.)
  96.  
  97.     See the question ``How can I browse through PostScript programs?''
  98.     in the section on utilities.
  99.  
  100.  
  101. Subject: 7.4 How do I get the physical size of a page?
  102.  
  103.     The initial clipping path gives you the size of the imagable area.
  104.     Use ``clippath pathbbox'' to get these coordinates. If you must
  105.     know the size of the device's imageable area, use the sequence
  106.     ``gsave initclip clippath pathbbox grestore'', but this will
  107.     prevent an enclosing application from using the clippath to achieve
  108.     some special effects (such as multiple pages per page).
  109.  
  110.  
  111. Subject: 7.5 Why can't I do a pathforall after a charpath ?
  112.  
  113.     (See Section 4, ``Fonts'', question ``Why are Adobe fonts
  114.     hidden?''.)
  115.  
  116.  
  117. Subject: 7.6 How do I center a string of text around a point?
  118.  
  119.     Level 1 PostScript has two operators that can extract information
  120.     about the metrics of characters: ``stringwidth'' and ``charpath''.
  121.  
  122.     The ``stringwidth'' operator returns the advance width of its
  123.     string operand. This is the distance the current point would be
  124.     moved by a ``show'' operation on the same string. ``stringwidth''
  125.     returns two numbers on the stack, representing the x and y
  126.     components of the advance width. Usually the y component is zero
  127.     because most fonts are displayed along a horizontal line, moving
  128.     the current point only in the x direction.
  129.  
  130.     Also note that the ``stringwidth'' operator includes any side
  131.     bearings in its result. It usually does not give an exact measure
  132.     of the area of the page that will be touched by its operand.
  133.  
  134.     If all that an application requires is horizontal centering of a
  135.     long string of text, the result returned by ``stringwidth'' is
  136.     sufficient. A common technique is
  137.  
  138.  
  139.           x y moveto
  140.           (string) dup stringwidth pop 2 div neg 0 rmoveto show
  141.  
  142.     (This code makes the assumption that the y component of advance
  143.     width is irrelevant.)
  144.  
  145.     The ``charpath'' operator extracts the graphic shapes of its string
  146.     operand and appends them to the current path in the graphic state.
  147.     These shapes can then be processed by other PostScript operators.
  148.     To get the actual size of the area touched by a character a simple
  149.     approach is
  150.  
  151.  
  152.           gsave
  153.           newpath
  154.           0 0 moveto
  155.           (X) true charpath flattenpath pathbbox
  156.           grestore
  157.  
  158.     This code places four numbers on the stack, representing the
  159.     coordinates of the lower left and upper right corners of the
  160.     bounding box enclosing the character ``X'' rendered with the
  161.     current point at (0,0).
  162.  
  163.     There are two things to be careful about when using the code shown
  164.     above:
  165.  
  166.  
  167.  
  168.    1. There are severe limits on the size of the string operand,
  169.       related to the limit on the number of elements in a graphic path.
  170.       The PostScript Language Reference Manual recommends taking
  171.       ``charpath''s one character at a time.
  172.  
  173.  
  174.    2. If user space is rotated or skewed with respect to device space,
  175.       the result from ``pathbbox'' may be larger than expected;
  176.       ``pathbbox'' returns a rectangle oriented along the user space
  177.       coordinate axes, which fully encloses a (possibly smaller)
  178.       rectangle oriented along the coordinate axes of device space. If
  179.       user space is rotated at an integer multiple of 90 degrees these
  180.       two rectangles will be the same, otherwise the rectangle in user
  181.       space will be larger.
  182.  
  183.     So, to center text vertically one must get the bounding boxes of
  184.     all the characters in the string to be displayed, find the minimum
  185.     and maximum y coordinate values, and use half the distance between
  186.     them to displace the text vertically.
  187.  
  188.     If an application does this repeatedly, it would be wise to store
  189.     the bounding boxes in an array indexed by character code, since
  190.     ``charpath'' is a slow operation.
  191.  
  192.     Font metric information is available outside of a PostScript
  193.     printer in font metrics files, available from Adobe. A program
  194.     generating PostScript output can obtain metrics from these files
  195.     rather than extracting the metrics in the printer.
  196.  
  197.  
  198. Subject: 7.7 How can I concatenate two strings together?
  199.  
  200.  
  201.   %% string1 string2 append string
  202.   % Function: Concatenates two strings together.
  203.   /append {
  204.            2 copy length exch length add  % find the length of the new.
  205.            string dup     % string1 string2 string string
  206.            4 2 roll       % string string string1 string2
  207.            2 index 0 3 index
  208.            % string string string1 string2 string 0 string1
  209.            putinterval    % stuff the first string in.
  210.            % string string string1 string2
  211.            exch length exch putinterval
  212.   } bind def
  213.  
  214.  
  215. Subject: 7.8 What do I do when I get stack overflow/underflow?
  216. |
  217. |   These errors are among the most common in PostScript.
  218. |
  219. |   When I get a stack overflow, that is usually a sign that a routine
  220. |   is leaving an object on the stack. If this routine gets called 2000
  221. |   times, it leaves 2000 objects on the stack, which is too many.
  222. |
  223. |   When I get a stack underflow, that is a sign that either: (A) one
  224. |   of the routines in the program doesn't work, and never has or (B)
  225. |   one of the routines in the program works, but expects to be called
  226. |   with some arguments left on the stack.
  227. |
  228. |   There is no such thing as a PostScript debugger right now. For now,
  229. |   the best that you can do to debug your program is to put in lots of
  230. |   print statements. Learn to use the PostScript pstack command, and
  231. |   use an online interpreter so you don't have to run to the printer
  232. |   for each debugging cycle.
  233. |
  234. |   Use an error handler to learn more about what exactly is happening
  235. |   when your program crashes. (see Section 12, ``PostScript
  236. |   Interpreters and Utilities'')
  237. |
  238. |   If your code has never worked yet (i.e. you are still writing it)
  239. |   then I find that it helps to put little comments in the margin
  240. |   about the state of the stack. Like this:
  241. |
  242. |
  243. |         Heart pathbbox             % lowerx lowery upperx uppery
  244. |         exch 4 -1 roll             % lowery uppery upperx lowerx
  245. |
  246. |
  247. |   I generally put these comments in originally, and then take them
  248. |   out when the program works. Maybe this is a bad practice, in case I
  249. |   ever want to go back and look at the code to modify it!!
  250.  
  251.  
  252. Subject: 7.9 The Obfuscated PostScript Contest
  253.  
  254.     Alena Lacova and Jonathan Monsarrat are running an Obfuscated
  255.     PostScript Contest that will end on January 10th.
  256.  
  257.     For information about the contest, write jgm@cs.brown.edu or ftp
  258.     the rules from wilma.cs.brown.edu:pub/postscript/rules.ps or
  259.     rules.txt.
  260.  
  261. Subject: 8 Computer-specific PostScript
  262.  
  263.     This section describes PostScript information specific to a
  264.     particular type of computer or operating system.
  265.  
  266.  
  267. Subject: 8.1 Sun Workstations
  268.  
  269.     What is NeWS?
  270.  
  271.     NeWS is Sun Microsystems PostScript-based window system for the Sun
  272.     Workstation. NeWS was a project within Sun (started around 1985) to
  273.     create a window system to supplant SunView (a very successful
  274.     kernel-based window system). NeWS is a client-server model window
  275.     system (like X) but among many of NeWS novel features was the use
  276.     of PostScript as the language to describe the appearance of objects
  277.     on the screen. Because there are few ways to design a knee joint,
  278.     NeWS has many features in common with Display PostScript, but NeWS
  279.     predates Adobe Display PostScript and was neither connected with
  280.     Adobe Display PostScript nor endorsed by Adobe. NeWS is not an
  281.     Adobe product, nor is it a Sun/Adobe joint venture.
  282.  
  283.     NeWS had the potential to become a world-class window system had
  284.     not a coalition of computer vendors ganged together to endorse the
  285.     X window system from MIT, sending Sun into a frenzy to support both
  286.     X and NeWS in the same window server.
  287.  
  288.     One respected engineer from DEC remarked they all feared Sun would
  289.     ignore the industry X coalition and go on to make NeWS a standard.
  290.     They were overjoyed when Sun reacted by taking on X and merging it
  291.     with NeWS, causing additional work which made it harder for Sun to
  292.     make progress with NeWS. oAlso it made X the de facto standard;
  293.     whether or not this is a good thing depends on who you talk to.
  294.  
  295.     As of October 1992, Sun management signed a deal with Adobe to
  296.     adopt Display PostScript for the Sun. The future of NeWS is still
  297.     undecided (but it looks bad).
  298.  
  299.     And how does PostScript run on them?
  300.  
  301.     PostScript runs on NeWS. Due to lack of support from Sun
  302.     management, NeWS never made it as a fully-compliant PostScript
  303.     interpreter. There were incompatibilities between the NeWS
  304.     PostScript interpreter and ``official'' PostScript interpreters as
  305.     defined by Adobe and the Apple LaserWriter family of printers, such
  306.     that many PostScript files which would print fine on a LaserWriter
  307.     would not render under NeWS. The most critical incompatibility was
  308.     the lack of support for Adobe Type 1 fonts, Sun having gone with
  309.     their own font format known as F3. Given the NeWS PostScript
  310.     interpreter was not even PostScript Level One compliant, the
  311.     chances of bringing NeWS to Level Two compliance was remote,
  312.     lending further to NeWS decline.
  313.  
  314.  
  315. Subject: 8.2 IBM PC
  316.  
  317.     You can find nenscript for OS/2 1.x--2.0 and MSDOS on
  318.     ftp-os2.nmsu.edu in pub/uploads/nensc113.zip.
  319.  
  320. |    There are rumors that Word Perfect and Microsoft Word don't produce
  321. |    ``clean'' PostScript that follows the DSC conventions (See Section
  322. |    9, ``Encapsulated PostScript''). This means that a lot of
  323. |    PostScript utilities like Ghostview and psnup, etc., that require
  324. |    the DSC conventions, will not work on them.
  325. |
  326. |    Creating a PostScript file from MS Word
  327. |
  328. |    Install the LaserWriter driver that comes with Windows.In the
  329. |    printer setup, select a PostScript printer. Then click on the setup
  330. |    button to get that pop-up. Then clik the Options button. Then
  331. |    select the print to Encapsulated PostScript File. If you don't
  332. |    specify a file name, Word will prompt you for one when you tell it
  333. |    to print.
  334. |
  335. |    When printing Microsoft Windows files that have been captured on a
  336. |    PC's LPT port, you mostly need to define two ctrl-d's in a row as
  337. |    well to remove all of them in the document:
  338. |
  339. |
  340. |  (\004\004) cvn \{\} def
  341.  
  342.  
  343. Subject: 8.3 Apple Macintosh
  344.  
  345.     For more details about printing with the Macintosh, read the
  346.     comp.sys.mac.apps FAQ.
  347.  
  348.     How can I convert a PostScript file created with a UNIX program to
  349.     the Mac?
  350.  
  351.     A way that is clumsy, but works, is this:
  352.  
  353.  
  354.  
  355.    1. Display the UNIX-based PostScript file on screen
  356.  
  357.  
  358.    2. Use window dumping facility to get a bitmap file
  359.  
  360.  
  361.    3. Convert the above bitmap file to TIFF format and then export it
  362.       to Adobe Illustrator on the Mac.
  363.  
  364.     The PostScript section of the FAQ for the Macintosh newsgroup
  365.     comp.sys.mac.app (maintained by Elliotte Harold) answers the
  366.     following questions:
  367.  
  368.  
  369.  
  370.     * How do I make a PostScript file?
  371.  
  372.  
  373.     * How do I print a PostScript file?
  374.  
  375.  
  376.     * Why won't my PostScript file print on my mainframe's printer?
  377.  
  378.       Full documentation of this process provided with a utility called
  379.       macps.
  380.  
  381.  
  382.     * Why are my PostScript files so big?
  383.  
  384.  
  385. Subject: 9 Encapsulated PostScript
  386.  
  387.  
  388. Subject: 9.1 What is Encapsulated PostScript?
  389.  
  390. |   Encapsulated PostScript (EPS) is a standard format for importing
  391.     and exporting PostScript language files in all environments. It is
  392.     usually a single page PostScript language program that describes an
  393.     illustration. The purpose of the EPS file is to be included as an
  394.     illustration in other PostScript language page descriptions. The
  395.     EPS file can contain any combination of text, graphics, and images.
  396.     An EPS file is the same as any other PostScript language page
  397.     description, with some restrictions.
  398.  
  399.     EPS files can optionally contain a bitmapped image preview, so that
  400.     systems that can't render PostScript directly can at least display
  401.     a crude representation of what the graphic will look like. There
  402.     are three preview formats: Mac (PICT), IBM (tiff), and a platform
  403.     independent preview called EPSI.
  404.  
  405.     An EPS file must be a conforming file, that is, it must conform to
  406.     the Adobe Document Structuring Conventions (DSC). At a minimum, it
  407.     must include a header comment,%!PS-Adobe-3.0 EPSF-3.0, and a
  408.     bounding box comment,%%BoundingBox: llx lly urx ury, that
  409.     describes the bounds of the illustration.
  410.  
  411.     (The specification does not require the EPSF version, but many
  412.     programs will reject a file that does not have it.)
  413.  
  414.     The EPS program must not use operators that initialize or
  415.     permanently change the state of the machine in a manner that cannot
  416.     be undone by the enclosing application's use of save and restore
  417.     (eg. the operators starting with ``init'' like initgraphics). As a
  418.     special case, the EPS program may use the showpage operator. The
  419.     importing application is responsible for disabling the normal
  420.     effects of showpage.
  421.  
  422.     The EPS program should make no environment-sensitive decisions (the
  423.     importing application may be trying to attain some special effect,
  424.     and the EPS program shouldn't screw this up), although it can use
  425.     some device-dependent tricks to improve appearance such as a
  426.     snap-to-pixel algorithm.
  427.  
  428.     The complete EPS specification is available from Adobe (see the
  429.     section on Adobe).
  430.  
  431.     An optional component of an EPS file is a ``preview'' image of the
  432.     file's content. The preview image is a bitmapped representation of
  433.     the image which may be displayed by programs using the EPS file
  434.     without having to actually interpret the PostScript code.
  435.  
  436.     The recommended form for a preview image is ``Interchange'' format
  437.     and is described fully in the ``red book'', second edition.
  438.     Interchange format represents the image as a series of hex strings
  439.     placed in the EPS file as PostScript comments. The entire file
  440.     remains an ASCII file.
  441.  
  442.     A variation of EPS embeds the preview image and PostScript text in
  443.     a binary file which contains a header and the preview image in
  444.     either a TIFF or MetaFile format. The header defines where in the
  445.     file each section (EPS, TIFF, or MetaFile) starts and ends. On the
  446.     Macintosh, the preview is stored as a PICT in the file's resource
  447.     fork.
  448.  
  449. Subject: 9.2 What are EPSI and EPSF?
  450. |
  451. |   EPSI is EPS with a device independent bitmap preview. EPSI is an
  452. |   all ASCII (no binary data or headers) version of EPS. EPSI provides
  453. |   for a hexadecimal encoded preview representation of the image that
  454. |   will be displayed or printed.
  455. |
  456. |   EPSF is a version of EPS with a TIFF preview instead of a bitmap
  457. |   preview.
  458.  
  459.  
  460. Subject: 9.3 How do I convert PostScript to EPS?
  461.  
  462.     To convert from PostScript to EPS, one must guarantee that the
  463.     PostScript file meets the above requirements. If the actual program
  464.     conforms to the programming requirements, then one can simply add
  465.     the required comments at the top of the file saying that the file
  466.     is EPS and giving its BoundingBox dimensions.
  467.  
  468.     Optional comments include font usage (%%DocumentFonts: or%%
  469.     DocumentNeededResources: font), EPSI preview comments (%%
  470.     Begin(End)Preview:) extensions (%%Extensions:) and language
  471.     level (%%LanguageLevel:).
  472.  
  473.     There are some operators that should not be used within an EPS
  474.     file:
  475.  
  476.  
  477.           banddevice     cleardictstack   copypage     erasepage
  478.           exitserver     framedevice      grestoreall  initclip
  479.           initgraphics   initmatrix       quit         renderbands
  480.           setglobal      setpagedevice    setshared    startjob
  481.  
  482.     These also include operators from statusdict and userdict operators
  483.     like legal, letter, a4, b5, etc.
  484.  
  485.     There are some operators that should be carefully used:
  486.  
  487.           nulldevice     setgstate        sethalftone  setmatrix
  488.           setscreen      settransfer      undefinefont
  489.  
  490.     To convert a PostScript file to EPS format, you must edit the file
  491.     using a text editor or word processor to add lines that will define
  492.     the file as an EPS-format file.
  493.  
  494.  
  495.  
  496.    1. Using your normal method of printing, print the PostScript file
  497.       to a PostScript printer. You can choose to view it on the screen
  498.       instead, but keep in mind that all the below distance
  499.       measurements assume that you are printing on a normal-sized piece
  500.       of paper.
  501.  
  502.       NOTE: If the PostScript image does not get displayed properly, it
  503.       probably will not work either once you have converted it to EPS
  504.       format. Correct the PostScript program so that it works before
  505.       you convert it to EPS format.
  506.  
  507.  
  508.    2. Use a tool (see below) to find the bounding box, which shows how
  509.       much space the PostScript image occupies when printed. You
  510.       specify the dimensions of the bounding box when you convert the
  511.       PostScript file to EPS format.
  512.  
  513.  
  514.    3. If you don't have a bounding box tool, you can just use a ruler
  515.       and draw one on your printout. With two horizontal lines and two
  516.       vertical lines, draw a box around the image that includes the
  517.       entire image while minimizing white space.
  518.  
  519.       This box represents your bounding box. You may want to leave a
  520.       small amount of white space around the image as a precautionary
  521.       measure against minor printing problems, such as paper stretching
  522.       and paper skewing.
  523.  
  524.  
  525.    4. Measure distance ``a'' from the lower-left corner of the image to
  526.       the left edge of the paper.
  527.  
  528.  
  529.    5. Write the measurement in points. If your ruler does not show
  530.       points, calculate the total number of points: 1 inch = 72 points,
  531.       1 cm = 28.3 points, and 1 pica = 12 points. Designate this
  532.       measurement as ``measurement a.''
  533.  
  534.  
  535.    6. Measure distance ``b'' from the lower-left corner of the image to
  536.       the bottom edge of the paper.
  537.  
  538.       Designate this measurement in points as ``measurement b.''
  539.  
  540.  
  541.    7. Measure distance ``c'' from the upper-right corner of the image
  542.       to the left edge of the paper.
  543.  
  544.       Designate this measurement in points as ``measurement c.''
  545.  
  546.  
  547.    8. Measure distance ``d' from the upper-right corner of the image to
  548.       the bottom edge of the paper.
  549.  
  550.       Designate this measurement in points as ``measurement d.''
  551.  
  552.  
  553.    9. Using any text editor, open the PostScript file for editing.
  554.  
  555.       You'll see several lines of text. These lines are the PostScript
  556.       description of the image. The lines at the top of the file are
  557.       the header.
  558.  
  559.  
  560.   10. Add these lines to, or modify existing lines in, the header (the
  561.       first group of lines in any PostScript file):
  562.  
  563.  
  564.             %!Adobe-2.0 EPSF
  565.             %%Creator: name
  566.             %%CreationDate: date
  567.             %%Title: filename
  568.             %%BoundingBox: a b c d
  569.  
  570.       Note: Make sure that the first line in the file is `` Also, do
  571.       not separate the header lines with a blank line space. The first
  572.       blank line that PostScript encounters tells it that the the next
  573.       line begins the body of the program.
  574.  
  575.       For ``name,'' type your name or initials. For ``date,'' type
  576.       today's date using any format (for example, MM-DD-YY, MM/DD/YY,
  577.       July 5, 1987, and so on). For ``filename,'' type the name of the
  578.       PostScript file. After ``BoundingBox: ,'' type the measurements
  579.       you took in steps 3, 4, 5, and 6, separating each with a space:
  580.       ``a'' is the measurement from Step 3, ``b'' is the measurement
  581.       from Step 4, ``c'' is the measurement from Step 5, and ``d'' is
  582.       the measurement from Step 6.
  583.  
  584.  
  585.   11. Save the file in text-only format.
  586.  
  587.     If you are interested in learning how to further edit your
  588.     PostScript files, these books are available at most bookstores:
  589.  
  590.     Understanding PostScript Programming and the green book.
  591.  
  592.     Encapsulated PostScript is discussed in Appendix C of the old red
  593.     book. The new red book has a lot of information about Encapsulated
  594.     PostScript.
  595.  
  596.     There will be a technical note available from Adobe called
  597.     'Guidelines for Specific Operators' that will talk about why some
  598.     operators are prohibited and how to use the others.
  599.  
  600.  
  601. Subject: 9.4 How do I get the bounding box of a PostScript picture?
  602.  
  603.     Use bbfig or epsinfo.ps.
  604.  
  605.     Or if you would rather construct the bounding box by hand, use
  606.     Ghostview, which has a continuous readout of the mouse cursor in
  607.     the default user coordinate system. You simply place the mouse in
  608.     the corners of the figure and read off the coordinates.
  609.  
  610. Subject: 10 About The Comp.Lang.PostScript FAQ (and Usenet Guide to
  611.     PostScript)
  612.  
  613.  
  614. Subject: 10.1 The PostScript FAQ: What is it?
  615.  
  616.     The PostScript FAQ is a set of answers to frequently asked
  617.     questions (FAQs) that have appeared on the Usenet newsgroup
  618.     comp.lang.postscript. It is broken into many useful sections.
  619.  
  620.     The Usenet Guide to PostScript is a larger set of help and answers
  621.     to PostScript questions, plus a tutorial for new users. It is still
  622.     in the process of being created. There is one file ``Exactly What
  623.     Does a Transformation Matrix Do?'', that is definitely not part of
  624.     the FAQ. Please send more!
  625.  
  626.     I need help writing and revising answers for common questions
  627.     relating to PostScript. Almost all of the information in the
  628.     documents has been written by kind volunteers. The answers will be
  629.     published in either or both documents. A very long answer in the
  630.     Usenet Guide may be summarized, referred to briefly, or not
  631.     mentioned at all in the FAQ.
  632.  
  633.  
  634. Subject: 10.2 How to get the FAQ files
  635.  
  636.     The FAQ is available by anonymous ftp to
  637.     wilma.cs.brown.edu:pub/comp.lang.postscript/ You can get it
  638.     formatted in plain text ASCII, LaTeX, or PostScript.
  639.  
  640.     I would be happy to email a copy of the FAQ in any format to you if
  641.     you do not have FTP.
  642.  
  643.  
  644. Subject: 10.3 How to write a FAQ answer
  645.  
  646.     I greatly appreciate your time and effort to help improve the
  647.     quality of the FAQ. Thank you for being willing to contribute!
  648.  
  649.  
  650.     * Please check to see if the topic is already in an FAQ. Perhaps
  651.       you really mean to submit a revision to an existing section.
  652.  
  653.     * Start with a clear statement about what problem you are solving.
  654.  
  655.     * Write for novice users, in ``tutorial format'', even if the
  656.       answer is meant for experienced programmers.
  657.  
  658.     * Be specific when you make references.
  659.  
  660.     * Be complete, and take the time to look over your draft and
  661.       revise.
  662.  
  663.     * Answers should not be too wordy, unless you intend to write a
  664.       long answer for the Usenet Guide and have a shorter summary or a
  665.       pointer to the description placed in the FAQ. If you want to
  666.       write the summary yourself, thanks!
  667.  
  668.     * Obviously, I cannot accept copyrighted material without
  669.       permission. Don't write the FAQ by paraphrasing from a
  670.       copyrighted book!
  671.  
  672.  
  673. Subject: 10.4 The FAQ can contain LaTeX and PostScript inserts
  674.  
  675.     The FAQ is actually written with LaTeX, so feel free to submit with
  676.     that text formatting language. There is a PostScript version of the
  677.     FAQ also, so feel free to send along PostScript pictures to
  678.     include.
  679.  
  680.  
  681. Subject: 10.5 Revising the FAQ
  682.  
  683.     Suggestions and comments are welcomed. My favorite way of receiving
  684.     a change suggestion is if you make a copy of the FAQ, edit the
  685.     copy, and mail me the modification, or a context diff (include the
  686.     version number).
  687.  
  688.  
  689. Subject: 10.6 How to submit new information
  690.  
  691.     If you know something that you think is worthwhile to be put in a
  692.     FAQ, definitely send it to me!
  693.  
  694.     Don't hold back if your information is very specific. If there's
  695.     too much information to post I will archive it at an ftp site and
  696.     place a pointer to it in the FAQ.
  697.  
  698.  
  699. Subject: 10.7 How to add a program description to the FAQ index
  700.  
  701.     If the program is original, please send it to me, or tell me where
  702.     I can get it. Please put your name and email address at the top of
  703.     each file. Your program will be doubly useful if you clean up the
  704.     program so that other people can use it as an example to learn.
  705.  
  706.     If the program was written by someone else, please send me just the
  707.     title, description, and where to get it. I may already have it.
  708.  
  709.     For programs the FAQ needs to know:
  710.  
  711.  
  712.     * What is the name of the program?
  713.  
  714.     * What does it claim to do, and does it do it well? Is it worth
  715.       using?
  716.  
  717.     * Where is it available? What ftp sites can I get it from?
  718.  
  719.     * How much does it cost? Is it free?
  720.  
  721.     * What kinds of computers does it run on?
  722.  
  723.     * Who is the author and does the author give an email address?
  724.  
  725.     * Does it handle PostScript 2?
  726.  
  727.     If the program is a PostScript interpreter, then the FAQ also needs
  728.     to know:
  729.  
  730.  
  731.     * Does it let you go backwards one page?
  732.  
  733.     * Does it display the number of pages in the document?
  734.  
  735.     * Does it let you print PostScript to a non-PostScript printer?
  736.  
  737.     * What formats can it convert to?
  738.  
  739.  
  740. Subject: 10.8 How to add a book description to the FAQ
  741.  
  742.     For books the FAQ needs to know:
  743.  
  744.  
  745.     * What is the name of the book or document?
  746.  
  747.     * What does it claim to do, and does it do it well? Is it worth
  748.       using?
  749.  
  750.     * Can I get it on-line?
  751.  
  752.     * Who wrote it? Does the author give an email address?
  753.  
  754.     * Who is the publisher, and what is the copyright date?
  755.